今天的目標很明確
其實就是向大家介紹物件導向以及Python Class的介紹
其實很多工程師都互推薦OOP學習C++或是Java
因為Python的私有方法也是可以存取!?不過今天不會講到這麼細,存粹是把物件導向功能帶給大家看
名詞解釋:
1.Class(類別): Class class的名稱(可自行定義)
ClassName: 是 Python 中的類別,是 OOP 的基本單位,用來定義物件的藍圖。類別定義了物件的屬性(變數)和行為(方法)。
2.Class Attribute(類別屬性):
class_attribute = "這是類別屬性": 類別屬性是定義在類別中的變數,屬於整個類別共享的,無論有多少實例,都共用這個屬性。
會寫在init之外的變數,像是上圖中的Class Attribute,他可以建立class的時候呼叫這個共同屬性
3.Instance Attribute(實例屬性):
self.attribute1 = parameter1: 實例屬性是與某個具體實例相關的變數,每個實例有獨立的屬性值。實例屬性是在 init 方法中定義的,透過 self 關鍵字與具體的物件綁定。
4.Method(方法):
def method1(self): 和 def method2(self, additional_parameter):: 方法是定義在類別內的函數,用來執行特定的操作。方法可以存取和修改實例屬性,也可以接收其他參數來進行運算。
5.init Method(初始化方法):
def init(self, parameter1, parameter2)::這是類別的構造函數,當創建類別實例時自動調用,用來初始化實例屬性。self 是指向該實例的參考。
6.Self(自身):
self: 是一個指向實例本身的參考,通過它可以存取實例屬性和方法。每個方法的第一個參數都是 self,這樣方法可以操作該實例的數據。
7.Object(物件/實例):
my_object = ClassName("值1", "值2"): 這是從類別 ClassName 創建的一個實例或物件。物件是類別的具體實例,擁有類別定義的屬性和方法。
8.Method Invocation(方法調用):
my_object.method1(): 使用 . 操作符來調用實例的屬性和方法。
雖然上面文謅謅的定義一堆
但是我們可以透過架構圖~來看看我們的基礎結構是怎麼設計的
其實總結很簡單,就是當你有個共同的規格定義:車子(卡車、轎車、電動車) 動物(貓、狗) 這個就可以是一個class(類別)
如果你是車子Class Car (toyato你想要定義它的品牌、型號、年份、顏色) ,再給他一個方法來展示這些屬性要怎麼做呢
外部傳來的屬性傳進去使用
class Car:
# 類別屬性(所有車的共通特徵)
class_attribute = "汽車"
def __init__(self, make, model, year, color):
# 初始化實例屬性(配備規格)
self.make = make # 汽車品牌
self.model = model # 汽車型號
self.year = year # 出廠年份
self.color = color # 汽車顏色
def display_specs(self):
# 方法,用來展示汽車的規格
print(f"這輛車是 {self.year} 年的 {self.color} {self.make} {self.model}。")
# 主程式
if __name__ == "__main__":
# 創建Car類別的實例,並傳入規格參數
my_car = Car("Toyota", "Camry", 2022, "白色")
# 調用方法來展示汽車的規格
my_car.display_specs() # 輸出: 這輛車是 2022 年的 白色 Toyota Camry。
tips1. 大家可以看到init裡面有個self的參數 ,其實不要想得太複雜可以把他想成建立當下的自己。比如剛剛的範例中。說你創造了一台車,但是你在這個規格表裡面車的屬性是什麼? 這時候你可以想像成self.model就是我這台車的型號 。
tips2. 至於後面的變數就是外面傳進來定義的屬性喔
今天我們學會了Class的建立
其實就很像是定義需求書一樣的概念~
把這個規格長好在傳入師傅定義的屬性
來建立實體~